package com.ruoyi.mapper.jpjs.dan;

import com.ruoyi.domain.jpjs.common.dan.Dan;
import com.ruoyi.domain.jpjs.common.dan.Inventory;
import com.ruoyi.domain.jpjs.common.dandetail.DanDetail;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface DanMapper {

    /**
     * 根据筛选条件获取危大工程
     *
     * @param map
     * @return 结果
     */
    List<Dan> getDanList(Map<String, Object> map);

    /**
     * 批量危大工程信息息
     *
     * @param dan 危大工程信息集合
     * @return 新增条数
     */
//    public int insertDanBatches(List<Dan> dan);

    /**
     * 新增危大工程清单信息
     *
     * @param dan 危大工程
     * @return 新增条数
     */
    public int insertDan(Dan dan);

    /**
     * 新增危大工程详情信息
     *
     * @param danDetail 危大工程信息详情
     * @return 新增条数
     */
    public int insertDanDetail(DanDetail danDetail);

    /**
     * 根据筛选条件获取危大工程详情信息
     *
     * @param map
     * @return 结果
     */
    List<DanDetail> selectDanDetailInfo(Map<String, Object> map);

    /**
     * 报表标识删除报表
     *
     * @param danDetailId 报表标识
     * @return 结果
     */
    public int deleteDanDetailById(String[] danDetailId);

    /**
     * 更新危大工程信息
     *
     * @param dan 报表标识
     * @return 结果
     */
    public int updateDanInfo(Dan dan);

    /**
     * 报表标识删除报表
     *
     * @param danId 报表标识
     * @return 结果
     */
    public int deleteDanById(String[] danId);

    /**
     * 获取 工程公司>项目名称 tree数据
     *
     * @param userId 登录用户id
     * @return 结果
     */
    List<Map<String, Object>> getProgramTree(@Param("userId") Long userId);


    public int updatePathById(Long detailId);


    public int updateDanDetailById(DanDetail danDetail);


    //取一公司的ID
    public String getOneCompId();
    //取二公司的ID
    public String getTwoCompId();


    /**
     * 新增危大工程清单信息
     *
     * @param inventory 危大工程清单信息
     * @return 新增条数
     */
    public int insertInventory(Inventory inventory);

    /**
     * 危大工程清单信息列表查询
     *
     * @param map
     * @return 结果
     */
    List<Inventory> getInventoryList(Map<String, Object> map);

    /**
     * 报表标识删除报表
     *
     * @param inventoryId 报表标识
     * @return 结果
     */
    public int deleteInventoryById(String[] inventoryId);

}
